﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace nr.InteractiveQuery
{
    /// <summary>
    /// Combina in OR una serie di filtri.
    /// </summary>
    public class OrFilter : ComplexFilter
    {
        /// <summary>
        /// Applica in AND una serie di filtri su una riga.
        /// </summary>
        /// <param name="row">Riga sulla quale applicare i filtri.</param>
        /// <returns>Risultato dell'applicazione dei filtri sulla riga.</returns>
        public override bool Apply(System.Data.DataRow row)
        {
            bool result = false;
            IEnumerator<IFilter> e = this.GetEnumerator();
            while(!result && e.MoveNext())
                result = result || e.Current.Apply(row);
            return result;
        }
    }
}
